In order to ensure the quality of software applications, quality assurance (QA) engineers use a variety of tools and procedures. For example, if an application has been modified, QA engineers test the application in order to ensure that additional bugs have not been introduced. Automated testing tools that perform regression testing are typically used to test the quality of a software application. WinRunner, by Mercury Interactive, is an example of an automated testing tool.
Regression testing is a quality control measure to ensure that any new addition or modification introduced into the application does not break the existing or desired functionality of the application. Regression testing is often used to selectively retest a software application that has been modified to ensure that all the known bugs have been fixed and that new bugs have not been introduced. Furthermore, regression testing can be used to ensure that no other previously working functions have failed as a result of the reparations and that newly added features are compatible with previous versions of the software. Thus regression testing is used for certifying any new application release, which contains new features and/or enhancements to the existing features with or without any changes to the entire technology stack on which the application resides.
Due to the global market for software applications, a particular software application may be internationalized (e.g., available in several languages). Therefore, it is typically necessary to test the application in each language in which it is available. Regression test scripts are used to test the quality of the software application. Typically, for each feature of the application that is being tested, a different regression test script must be recorded.
Due to the use of different labels and objects for versions of a software application for use in different languages, it is currently necessary to record a different regression test for each language. As a result, a regression test script for testing a particular feature in one language needs to be rerecorded for testing the same feature in a different language.
Depending on the complexity of the application being tested, a regression test script can take a long time for a QA engineer to create. Requiring QA engineers to create and maintain a regression test script for every feature of an application and for every language of the application that needs testing presents a number of disadvantages. For one, the work to create the test scripts and their associated GUI maps is often duplicated across several QA engineers, resulting in duplication of work and decreased productivity. Furthermore, maintaining a large number of regression test scripts is highly time consuming and further reduces productivity.